/*封装请求*/
import utils from '../index.js'
import store from '../../store/index.js'

async function request(options) {
	//header处理
	options.header = options.header || {}
	options.header = Object.assign({ 'Content-Type': 'application/x-www-form-urlencoded' },options.header)
	
	//token处理
	if(store.state.token){
		options.header['TOKEN'] = store.state.token || ''
	}
	
	//默认sucess为false时自动toast
	options.isBanToastErr = options.isBanToastErr || false
	
	//默认api版本设置
	options.version = options.version || utils.config.defaultApiVersion
	
	//url处理
	let url
	//不需要拼接url版本号的情况（例如版本更新接口）
	if(options.noVersion){
		url = utils.config.apiBaseUrl + options.url
	//拼接url版本号
	}else if(options.version){
		url = utils.config.apiBaseUrl + '/app/v'+options.version +options.url
	}else{
		//默认情况（微信小程序,H5时用上啦）
		url = utils.config.apiBaseUrl + options.url
	}
	
	return new Promise((resolve, reject) => {
		uni.request({
			url: url,
			method: options.method || 'get',
			data: options.data || {},
			header: options.header,
			success: function(res){
				if((res.data && res.data.status == 0) || res.data.status == 1){
					resolve(res)
				}else{
					reject(res)
				}
			},
			fail: function(err){
				console.log(err.message)
				reject(err)
			}
		})
	})
}

export default request